﻿//using System;
//using System.Data;
//using System.Data.Linq;
//using System.Data.Linq.Mapping;
//using System.Transactions;

//namespace StockholmsStad.Data
//{
//    /// <summary>
//    /// Basklass för databaskontext
//    /// </summary>
//    [Database(Name = "StockholmsStad")]
//    public partial class DataContextBase : DataContext, IDisposable
//    {
//        /// <summary>
//        /// 
//        /// </summary>
//        protected bool IsDisposed { get; private set; }

//        #region Constructor

//        /// <summary>
//        /// Skapar nytt databaskontext
//        /// </summary>
//        /// <param name="connectionString"></param>
//        public DataContextBase(string connectionString) : base(connectionString)
//        {
//        }

//        /// <summary>
//        /// Skapar nytt databaskontext
//        /// </summary>
//        /// <param name="connectionString"></param>
//        /// <param name="mapping"></param>
//        public DataContextBase(string connectionString, MappingSource mapping) : base(connectionString, mapping)
//        {
//        }

//        /// <summary>
//        /// Skapar nytt databaskontext
//        /// </summary>
//        /// <param name="connection"></param>
//        public DataContextBase(IDbConnection connection) : base(connection)
//        {
//        }

//        /// <summary>
//        /// Skapar nytt databaskontext
//        /// </summary>
//        /// <param name="connection"></param>
//        /// <param name="mapping"></param>
//        public DataContextBase(IDbConnection connection, MappingSource mapping) : base(connection, mapping)
//        {
//        }

//        #endregion

//        #region IDisposable Members

//        void IDisposable.Dispose()
//        {
//            Dispose(true);

//            // Suppress finalization of this disposed instance.
//            GC.SuppressFinalize(this);
//        }

//        #endregion

//        partial void OnCreated();

//        /// <summary>
//        /// Gör commit i databasen
//        /// </summary>
//        public new void SubmitChanges()
//        {
//            using (var scope = new TransactionScope())
//            {
//                SubmitChanges(ConflictMode.FailOnFirstConflict);
//                scope.Complete();
//            }
//        }

//        /// <summary>
//        /// Gör commit i databasen
//        /// </summary>
//        /// <param name="failureMode"></param>
//        private new void SubmitChanges(ConflictMode failureMode)
//        {
//            base.SubmitChanges(failureMode);
//        }

//        /// <summary>
//        /// 
//        /// </summary>
//        protected void CheckDispose()
//        {
//            if (IsDisposed)
//            {
//                throw new ObjectDisposedException("DBContextBase");
//            }
//        }

//        /// <summary>
//        /// 
//        /// </summary>
//        /// <param name="disposing"></param>
//        public new void Dispose(bool disposing)
//        {
//            if (!IsDisposed && disposing)
//            {
//                Dispose();
//                IsDisposed = true;
//            }
//        }

//        /// <summary>
//        /// Destruktor
//        /// </summary>
//        ~DataContextBase()
//        {
//            Dispose(false);
//        }
//    }
//}